
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Encoders;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SaveMode;
import org.apache.spark.sql.SparkSession;

import java.util.Arrays;

public class ParquetWriteApp {
    public static void main(String[] args) {
        // 1. 初始化 SparkSession（本地模式 + Parquet 加密配置）
        SparkSession spark = SparkSession.builder()
                .appName("ParquetWriteApp")
                .master("local[*]")  // 本地运行
                .getOrCreate();

        // 2. 创建示例数据（模拟数据源）
        Dataset<Row> data = spark.createDataset(
                Arrays.asList(
                        new Person(1, "Alice"),
                        new Person(2, "Bob")
                ),
                Encoders.bean(Person.class)
        ).toDF("id", "name");

        data.show();

        // 3. 保存为加密的 Parquet 文件
        String outputPath = "not_encrypted_data.parquet";
        data.write()
                .mode(SaveMode.Overwrite)
                .parquet(outputPath);
        spark.stop();
    }
}
